#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <stdint.h>
#include <unistd.h>

int main(int argc, char** argv) {
	if (argc != 3) {
		return -1;
	} else {
		int32_t arch1 = open(argv[1], O_RDONLY);
		int32_t arch2 = open(argv[2], O_RDONLY);
		if (arch1 == -1) {
			printf("El archivo 1 no se abriò correctamente\n");
			return -1;
		}
		if (arch2 == -1) {
			printf("El archivo 2 no se abriò correctamente\n");
			return -1;
		}
		uint32_t archSize1 = lseek(arch1, 0, SEEK_END);
		uint32_t archSize2 = lseek(arch2, 0, SEEK_END);
		if (archSize1 != archSize2) {
			printf("Tamaños distintos\n");
			return -1;
		}
		uint32_t i;
		int8_t iguales = 1;
		lseek(arch1, 0, SEEK_SET);
		lseek(arch2, 0, SEEK_SET);
		char char1;
		char char2;
		for (i = 0; i < archSize1 && iguales;) {

			read(arch1, &char1, 1);
			read(arch2, &char2, 1);
			if (char1 == char2) {
				iguales = 1;
				i++;
			} else
				iguales = 0;
		}
		if (i < archSize1) {
			printf(
					"En la posiciòn %d los valores son distintos arch1: [%c], arch2: [%c]\n",
					i, char1, char2);
			return -1;
		} else {
			printf("Los archivos son iguales \n");
			return 0;
		}
	}
}
